Reward Structures

ABSTRACT

In accordance with some implementations, a method for rewarding users in a social referral system in accordance with some implementations is disclosed. The method is performed on a server system having one or more processors. The server system stores genealogy data for a plurality of users of the computer system. The server system then detects a user interaction with the computer system. The server system then determines whether the detected user interaction is associated with a reward. The server system then, in accordance with a determination that the detected user interaction is associated with a reward, determines, based on the stored genealogy data associated with the detected user interaction, a list of one or more users to receive at least a portion of the reward associated with the detected user interaction. The server system then allocates the associated reward to at least one of the one or more listed users.

RELATED APPLICATIONS

This application is claims priority to the following (1) U.S. Provisional Application Ser. No. 61/648,564, filed May 17, 2012, entitled “Progressively Asking for Increasing Amounts of User and Network Data”; (2) U.S. Provisional Application Ser. No. 61/648,566, filed May 17, 2012, entitled “Conversational Interfaces”; (3) U.S. Provisional Application Ser. No. 61/648,569, filed May 17, 2012, entitled “Universal Communications Infrastructure”; (4) U.S. Provisional Application Ser. No. 61/648,578, filed May 17, 2012, entitled “Trust Graph”; (5) U.S. Provisional Application Ser. No. 61/648,582, filed May 17, 2012, entitled “Universal Consumption Service”; (6) U.S. Provisional Application Ser. No. 61/648,588, filed May 17, 2012, entitled “Reward Structures”; (7) U.S. Provisional Application Ser. No. 61/648,591, filed May 17, 2012, entitled “System and Method for Social Network Based Referrals”; (8) U.S. Provisional Application Ser. No. 61/688,655, filed May 18, 2012, entitled “System and Method for Social Network Based Referrals”; which are incorporated herein by reference in their entirety.

This application is also related to the following (1) U.S. application Ser. No. ______, filed ______, entitled “Progressively Asking for Increasing Amounts of User and Network Data” (Attorney Docket: 020610-5001); (2) U.S. application Ser. No. ______, filed ______, entitled “Conversational Interfaces” (Attorney Docket: 020610-5002); (3) U.S. application Ser. No. ______, filed ______, entitled “Universal Communications Infrastructure” (Attorney Docket: 020610-5003); (4) U.S. application Ser. No. 13/769,181, filed Feb. 15, 2013, entitled “Trust Graph”; (5) U.S. application Ser. No. ______, filed ______, entitled “Zero Click Commerce Systems” (Attorney Docket: 020610-5005); (6) U.S. application Ser. No. ______, filed ______, entitled “Universal Consumption Service” (Attorney Docket: 020610-5006); (7) U.S. application Ser. No. ______, filed entitled “Pre-Establishing Purchasing Intent for Computer Based Commerce Systems” entitled “System and Method for Social Network Based Referrals” (Attorney Docket: 020610-5009); which are incorporated herein by reference in their entirety.

TECHNICAL FIELD

The disclosed implementations relate to the field of online commerce generally and to rewarding user participation in particular.

BACKGROUND

Over the last two decades, the buying and the selling of products through computer networks such as the Internet has increased dramatically. A significant portion of all commerce is now conducted online through the Internet. As the amount of commerce conducted online grows, the number of online commerce vendors also grows. As such, an increasing number of online vendors compete with each other to offer users the best user experience.

One way to differentiate from other online retailers is to provide rewards to users who engage and participate with the commerce system. Specifically, by rewarding a user for being active in a social referral system, users are encouraged to help customize and improve the commercial experience for all users. As such, it would be useful to have a reward, structure to encourage the users of the system to help curate the large number of products, services, and vendors available to provide the best experience to other users.

SUMMARY

In some implementations, the computer system is a participatory social commerce system. In some implementations, a participatory social commerce system is one that provides participatory rewards to its members on an equal footing for all of their commercial actions taken within the system.

In some implementations, the actions in the world can be stored as an action->reward graph, and the economic value tracked through a social genealogy of the actions, which are all recorded, such that credit may be awarded to the originally causing users the whole way through the chain of events. In some implementations, these genealogies include records of past causal actions (actions or relationships that have influenced or caused the current action.).

In some implementations, the genealogies also track users or products that are added to the system. When a user is invited to join the system, the inviting user would receive some credit for all downstream economic activity caused by the invited user.

In some implementations, the genealogies are extracted from pre-existing materials or relationships. For example, a user's email contact book is uploaded. An email thread shows the product's original recommender and any other users who passed the recommendation along. This can be user to assign rewards to the users.

In accordance with some implementations, a method for rewarding users in a social referral system in accordance with some implementations is disclosed. The method is performed on a server system having one or more processors and memory storing one or more programs for execution by the one or more processors. The server system stores genealogy data for a plurality of users of the computer system. The server system then detects a user interaction with the computer system. The server system then determines whether the detected user interaction is associated with a reward. The server system then, in accordance with a determination that the detected user interaction is associated with a reward, determines, based on the stored genealogy data associated with the detected user interaction, a list of one or more users to receive at least a portion of the reward associated with the detected user interaction. The server system then allocates the associated reward to at least one of the one or more listed users.

In accordance with some implementations, a server system for rewarding users in a social referral system is disclosed. The server system has one or more processors, and memory storing one or more programs to be executed by the one or more processors. The one or more programs include instructions for storing genealogy data for a plurality of users of the computer system. The one or more programs further include instructions for detecting a user interaction with the computer system. The one or more programs further include instructions for determining whether the detected user interaction is associated with a reward. The one or more programs further include instructions for, in accordance with a determination that the detected user interaction is associated with a reward, determining, based on the stored genealogy data associated with the detected user interaction, a list of one or more users to receive at least a portion of the reward associated with the detected user interaction. The one or more programs further include instructions for allocating the associated reward to at least one of the one or more listed users.

In accordance with some implementations, a non-transitory computer readable storage medium storing one or more programs configured for execution by a server system is disclosed. The one or more programs also include instructions for storing genealogy data for a plurality of users of the computer system. The one or more programs further include instructions for detecting a user interaction with the computer system. The one or more programs further include instructions for determining whether the detected user interaction is associated with a reward. The one or more programs further include instructions for, in accordance with a determination that the detected user interaction is associated with a reward, determining, based on the stored genealogy data associated with the detected user interaction, a list of one or more users to receive at least a portion of the reward associated with the detected user interaction. The one or more programs further include instructions for allocating the associated reward to at least one of the one or more listed users.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a client-server environment in accordance with some implementations.

FIG. 2 is a block diagram illustrating a client system in accordance with some implementations.

FIG. 3 is a block diagram illustrating a server system in accordance with some implementations.

FIG. 4 depicts a block diagram of an exemplary data structure for a user profile database for storing information related to users of the server system in accordance with some implementations.

FIG. 5 is a flow diagram illustrating the process for rewarding users in a social referral system in accordance with some implementations.

FIG. 6 is a flow diagram illustrating the process rewarding users in a social referral system in accordance with some implementations.

Like reference numerals refer to corresponding parts throughout the drawings.

DESCRIPTION OF IMPLEMENTATIONS

In some implementations, a computer system operates a participatory social commerce system. In some implementations, a participatory social commerce system is one that provides participatory rewards to its members on an equal footing for all of their commercial actions taken within the system.

FIG. 1 is a block diagram illustrating a client-server environment 100 in accordance with some implementations. The client-server environment 100 includes one or more client systems 102-1 and 102-2, a server system 120, one or more vendors 170, and one or more third parties, all connected over a network 110. In some implementations, the client system 102 includes one or more client applications 104 and a display 106. The server system 120 includes a communication module 122, an interaction processing module 124, an interaction analysis module 126, a reward module 128, a genealogy building module 130, a product database 140, a genealogy database 150, and a user profile database 160. The network 110 may consist of any one or more of any of a variety of networks, including local area networks (LAN), wide area networks (WAN), wireless networks, wired networks, the Internet, or any combination of such networks.

In accordance with some implementations, the client system 102 includes one or more client applications 104. The one or more client applications 104 include, but are not limited to, a web browsing application for connecting to the server system 120. The client system 102 also includes a display 106. In some implementations, the client system 102 is a computing device with the display integrated into the device itself, such as a laptop, a smart phone, a personal computer, a tablet computer, or other computing device. In other implementations the display 106 is connected to, but not integrated into the client system. For example, desktop computer systems often do not have an integrated display and instead connect to a standalone display.

In some implementations, the client system 102 transmits an interaction 114 request to the server system 102. In some implementations, an interaction request 114 is a request to the server system 120 to use one of the services provided by the server system 120. In some implementations, requested interactions 114 include, but are not limited to: a product purchase request, a recommendation, a request for recommendations, a request to redeem a reward, a request to pre-establish purchase intent, a user referral, a request to establish trust with another user of the server system, and any responses to any requests from the server system 120.

In some implementations, the client system 102 sends requests to one or more third party and receives responses from those third parties. In some implementations, the third parties are social networking services, such as Facebook or Linkedln. In some implementations, the requests sent to a third party are recorded or logged by the third party and reflect to some degree the social network of the user of the client system 102. In some implementations, the user of the client system 102 can authorize the server system 120 to access the information stored at the third party 180 for analysis.

In some implementations, the client system 102 sends communications to other users, either through the server system 120, through a third party (e.g., Twitter), or using a communications protocol like electronic mail. In some implementations, a record of these communications is stored either locally at the client system 102 or remotely on a server. For example, a local address book and email program stores a record of outgoing and incoming email and the contact information for the users that are frequently contacted.

In some implementations, the client system 102 receives communications from the server system 120. In some implementations, the server system 120 sends a message to the client system 102. In some implementations, the message is a recommendation from the server system 120. For example, the server sends the user a recommendation for a particular pair of shoes at a particular price. In other implementations, the message is a request for a recommendation from the user associated with the sever system. In yet other implementations, the client system receives a purchase confirmation message from the sever system 120. In some implementations, a purchase confirmation message requests that the client system 102 to confirm a purchase. In some implementations, the client system 102 receives a reward notification from the server system 120. A reward notification is a communication from the server system 120 that informs a user that the user has received a reward from the server system 120 and identifies the type of the award and, if appropriate, the amount of the award. In other implementations, the client system 102 receives a reward from the server system 120 (e.g., when the reward is a digital reward of some kind, like an application, digital media, digital currency, or the like).

In accordance with some implementations, the server system 120 includes a communication module 122, an interaction processing module 124, an interaction analysis module 126, a reward module 128, a genealogy building module 130, a product database 140, a genealogy database 150, and a user profile database 160. The communication module is configured to send and receive communications over the network 110 to one or more client systems 102 and one or more vendors 170.

In accordance with some implementations, the communication module 122 handles communication with the one or more client systems 102 or with third part systems 180. In some implementations, the communication module 122 receives an interaction request 114 from a client system. In some implementations, the interaction request is one of a product purchase request, a recommendation, a request for recommendations, a request to redeem a reward, a request to pre-establish purchase intent, a user referral, a request to establish trust with another user of the server system, and any responses to any requests from the server system. In some implementations, the communication modules 122 routes the received interaction request 114 to the appropriate module with the server system 120.

In some implementations, the communication module 122 conducts communication between one or more third party web-sites and the server system 120. In some implementations, the communication module 122 has received information from a user of a server system 120 that allows the communication module 122 to access data stored on the third party (e.g., login information). The communication module 122 then sends a request to one or more third party 180 for information stored by the third party. In some implementations, the server system 120 only gathers additional information from third party with the express consent of a user.

In some implementations, the communication module 122 forwards received requests to the relevant systems at the server system 120. In some implementations, most interaction requests are forward to the interaction processing module 124. In some implementations, requests to add products to the product database 140 are transferred immediately to the product database 140. In other implementations, data received from a third party regarding a user's social activity on a third party system is forwarded to the interaction analysis module 126 for analysis.

In some implementations, the interaction processing module 124 receives an interaction request 114 from a user associated with a client system 102. In some implementations, interaction requests include, but are not limited to: requested interactions 114 include: a product purchase request, a recommendation, a request for recommendations, a request to redeem a reward, a request to pre-establish purchase intent, a user referral (e.g., an invitation to use the server system), a request to establish trust with another user of the server system, and any responses to any requests from the server system 120.

In some implementations, in response to receiving an interaction request 114, the interaction processing module 124 responds to the received interaction request 114 appropriately. In some implementations, the interaction request 114 is a product purchase request and the interaction processing module 124 purchases the product on behalf of the user that sent the request. In some implementations, the interaction processing module 124 receives a recommendation and stores it in a recommendation database. In some implementations, the received interaction request 114 is a user referral request and the interaction processing module 124 sends the user invitation to a potential new user.

In some implementations, the interaction processing module 124 identifies which user sent the interaction request 114 to the server system 120. In some implementations, the interaction processing module 124 determines the user that sent the interaction request 114 based on the user ID associated with the interaction request 114. In some implementations, the interaction processing module 124 requests the user profile of the requesting user from the user profile database 160. The interaction processing module 124 then sends the retrieved user profile and the interaction request to the interaction request module 126.

In some implementations, the interaction analysis module 126 determines, based on the specific interaction requested by the user, whether there is a reward associated with the requested user interaction. In some implementations, specific interactions have pre-established rewards that are regularly associated with them. For example, the server system 120 grants a reward when a user refers another user to the server system. In other implementations, the rewards associated with interactions change based on user history, vendor promotions, and promotions from the server system 120. In some implementations, users are granted a reward, or a larger than normal award, for the first time a user performs a certain type of interaction with the sever system. For example, the server system 120 grants a larger than normal reward when a user makes its first purchase or recommendation. In some implementations, vendors 170 can instruct the server system 120 to run a promotion for a certain type of user interaction. For example, a user could be awarded a larger than normal reward when it purchases or recommends a product supplied by a specific vendor. In some implementations, the server system 120 itself will run a promotion with larger than normal rewards.

In some implementations, users associated with the server system 120 have an associated level or rank. In some implementations, users of the server system (FIG. 1, 120) are rewarded with points that count towards increasing a user's level or rank as the user interacts with the server system. In some implementations, the level or rank of a user is a measure of the user's influence or status in the server system (FIG. 1, 120) (e.g., the number of people that trust the user or act on their recommendations.) In some implementations, the reward given to a user is dependent on the level of the user. For example, users that are very influential (e.g., style makers) receive increased rewards.

In some implementations, rewards can be given in one or more of the following methods: cash or cash equivalents (e.g., gift cards), charitable gifts on behalf of a user, access to additional features, points in a reward or rank system, digital currency, digital media, applications, or any other suitable reward system. In some implementations, rewards include donate-able value or in-kind goods. For example, a user may be rewarded with a $5 donation to a specific charity. In another example, a user may be rewarded with a free product from among the products they have recommended.

In some implementations, rewards can be given to users socially. For a series of actions, a user earns credit towards various levels or scores. These might be divested from the economic or real payouts the user can receive, or they might be linked. e.g., two action->value mappings can coexist, one for social value and one for real value. Certain actions may provide values in both mappings. For example, a user might achieve a level of “trust” in a category because enough people have made purchases based on its recommendations. A user might also achieve a label for having a broad set of categories in which they have recommendations for which they have been thanked. A tastemaker might receive a label or level based on how “far reaching” their recommendations have gone (they started a whole trend).

In some implementations, rewards can be given to users as currency of some kind. It could be given as credits towards additional commercial activity in the service (with real money value), value-in-kind (get any book a friend recommends for free), or cash delivered as a check or other cash equivalent.

In some implementations, being able to receive certain types of real rewards could be predicated on the completion of certain sets of tasks or sets of actions, or various social levels. For example, a user must have purchased at least one recommendation from a friend this month to receive real cash value for all of the recommendations the user made that the user's friends have purchased (these limits would make it impossible for certain members to free-ride on only one side of the ecosystem: everyone would need to participate). In some implementations, the user could also have to achieve a level, e.g. “Professional” to qualify to receive cash for his or her activity. In some implementations, rewards could also be presented in various “spiffed” formats that make it feel more fun to a user. For example, a user could receive “lottery tickets” that allow a user to unwrap the reward and receive a surprise

In some implementations, rewards are triggered for users based on qualitative criteria. For example, a participant associated with an outside brand could serve as a judge for a contest based on the user that has the best collection of recommendations. The server system recognizes this determination based on qualitative criteria and then triggers a reward for the user or users who built it. In some implementations, the server system gives rewards based on judgment actions (e.g., a user marking a product or recommendation as a favorite or liking a product, recommendation, or collection of recommendations) of users of the system. For example, the server system gives a reward to users who have over 1000 likes. In another case, the server system (FIG. 1, 120) rewards the user with the most number of favorites during a given month.

In some implementations, rewards could also be given to a user by other users of the computer system, as part of their follow-on actions to the user's actions. This would make it more explicit socially (e.g., “buying you a thank you beer”.)

In some implementations, vendors or companies can partner with the server system to create rewards structures and fund them. In some implementations, partner vendors or companies can choose a general goal or theme for the rewards and allow the server system to create specific reward structures. For example, a company like Nike can choose a theme like pre-marathon workout products and provide funding. The server system then creates rewards based on the goal theme, such as creating a reward for best “pre-marathon workout products” collection of recommendations or increased rewards for purchasing products that fall into that category. In other implementations, the partner vendor or companies choose specific rewards for specific actions. For example, Nike can establish rewards for purchasing or recommending a new shoe line. In other implementations, the partner vendors Users then are rewarded through the server system for purchasing a shoe from the new shoe line. In other implementations, the server system records the interaction that results in a reward, delivers that information to the partner vendor or company, and the partner vendor or company delivers the reward to the user directly.

In some implementations, a reward module 128 determines a reward amount and type based on the type of interaction, the user's social rank or level, and other factors. For example, when a user with a high social rank purchases a product, the user may receive a larger reward than a lower social rank user. The reward module 128 determines that the established reward is site credit based on the price of the product. As a user with a high social rank, the user is given perhaps 1.5% of the value of the product (a user with a lower social rank might get perhaps 1.0% or 0.5%) as credit on the server system.

In some implementations, more than one user qualifies to receive a reward for a particular user interaction with the server system. 120. In some implementations, the reward module 128 obtains a genealogy for the user interaction. In some implementations, the obtained genealogy is associated with a particular user. In some implementations, the obtained genealogy identifies users who have caused the current user to interact with the server system 120 and therefore have caused the reward to be generated. For example, a genealogy for Bob includes the series of users who issued invites to the server system prior to Bob being invited.

In some implementations, the genealogy is related to the user's interaction with the server system 120. The genealogy then includes users whose actions played a part in the current user's interaction with the server system 120. For example, if a user purchases a product based on a recommendation, the genealogy associated with the recommendation includes the user who first recommended the product and any subsequent user who re-recommended the product. In some implementations, a user receives a recommendation because of an explicit recommendation from another user. In other implementations, the server system 120 recommends a product to a user based on the user's social connections recorded on the server system 120 or other social networking platform. If a recommendation is displayed to user A based on their social relationship with user B, user B is included in the genealogy of the recommendation.

In some implementations, the reward module 128 generates a list of users who are eligible to receive a reward based on the genealogy data. In some implementations, the genealogy data is stored in a directed graph with nodes and edges. In this case, the reward module 128 selects only users who are within a predetermined graph distance (a predetermined number of edges) from the primary user.

In some implementations, users must have qualified to receive rewards prior to the interaction with the server system 120. In some implementations, users qualify to receive rewards by taking a particular action, such as by making a first purchase. In other implementations, the user needs only to register with the server system 120.

In some implementations, the reward module 128 divides the total reward among the listed users. In some implementations, the reward is split evenly between all the listed users. In other implementations, the reward is given mainly to the user that initiated the interaction with the server system 120 and less is given to the other listed users. For example, in some implementations, the credit given can be capped asymptotically (e.g., a total of X % of the economic event is given to the entire genealogy) such that the most causing user is given the most credit, and all of the upstream causal users are given a divided remainder (divided such that it cannot ever exceed the asymptote). E.g., the first level might get 3% of 6% of a $100 purchase. $3 goes to the most recent recommender of a product who recommended the product to the friend who purchased. The remaining 3% or $3 must then be divided amongst all the people remaining in the chain upstream. If there are three people who equally caused the event, it could be given to the three equally (1% or $1 each). If the three were chained, it might instead be divided where the next person in the chain received the next 50% of the payout, or 1.5% or $1.50. The two above then would divide up again: the next in the chain would receive 50% of the remaining $1.50 ($0.75). The final member of the chain would receive 50% of the remaining $0.75 ($0.375). Should the chain keep going, this would just continue on and on; ¼, ½, ⅛+1/(2̂n)˜=100% of the payout cap (the asymptote).

In some implementations, the genealogy building module 130 collects information stored at the server system (FIG. 1, 120) and other places, and uses it to build genealogies. The most basic genealogy is the user invite genealogy, which would list, starting with the current user, the user who invited or referred that user to the server system 120. In other implementations, a genealogy is built for a particular interaction. For example, a first user purchases a product based on a recommendation. The genealogy for that recommendation includes the user who first recommended the product and any users who re-recommended the product to the first user.

In some implementations, the genealogy building module 130 builds genealogies for users that describe the user's social network based on trust graph information stored at the server system (FIG. 1, 120). In other implementations, the genealogy building module 130 builds a genealogy based on a social network data and communication data retrieved from a third party (e.g., Facebook or Twitter)

In some implementations, the product database 140 contains a plurality of product entries. Each product entry is associated with a single product and contains information related thereto. In some implementations, the product entries store the unique identifier of the product (e.g., bar code, name and module number, SKU number, or other product identifier), the specifications of the product (size, color, capacity, etc), a list of vendors that can supply the product, the price of the product, and any other pertinent information. In some implementations, different vendors will have different prices and thus the product entry in the product database 140 will store a list of vendors and a vendor specific price for each vendor. For example, if a product is available from four vendors, the product database 140 will store a separate price for each vendor.

In some implementations, the products in the product database 140 are added by partner vendors 160. In some implementations, the products in the database 140 are added by users and recommenders in the server system 120. The products database 140 includes information for each product, including, but not limited to, the price of the product, its specification (size, color, etc), the vendor or vendors from which it is available, whether the item is in stock, and whether it is available for delivery. In some implementations, the vendor selection module 130 and the purchasing module 128 use the information stored in the product database 140 to purchase the selected product. In some implementations, the product database 140 searches accessible catalogs or databases of vendors or other databases maintained by vendors that are available over a network 110 for the desired product, and updates the product database 140 based on information stored on accessible databases or in catalogs. In some implementations, the information in the product database includes a time stamp or other date indication. Thus, if a product is on sale or otherwise time limited, the product database can notify users or make recommendations at the appropriate time.

In some implementations, the genealogy database 150 includes calculated genealogies. Genealogies are built by the genealogy building module 130, and then the completed genealogies are stored in the genealogy database 150. In some implementations, genealogies are updated as new interactions occur between the server system (FIG. 1, 120) and the client systems 102.

In some implementations, a genealogy database 150 further includes stored interaction data 152. Stored interaction data is data recording all user interactions with the server system (FIG. 1, 120) including, but not limited to: a product purchase request, a recommendation, a request for recommendations, a request to redeem a reward, a request to pre-establish purchase intent, a user referral, a request to establish trust with another user of the server system, and any responses to any requests from the server system 120.

In some implementations, the user profile database 160 contains user profiles for users who have registered to use the service provided by the server system 120. In some implementations, a user profile includes the name, ID, demographic information (gender, age, location, etc), purchasing history, social network information, and trust information. The user profile database 160 includes trust graph data. In some implementations, the trust graph data includes information describing a directed trust graph. The trust graph includes nodes, which represent users, and edges connecting nodes, which represent the trust level between the two users represented by the two nodes that the edge connects.

In some implementations, the vendors 170 are commercial organizations with products to sell. The vendors 170 can receive orders to purchase products from the server system 120 and fulfill those orders.

In some implementations, third party services 180 include a plurality of publicly available third party service. These services include, but are not limited to, social network services, messaging services, blog services, chat services, and webmail services.

FIG. 2 is a block diagram illustrating a client system 102, in accordance with some implementations. The client system 102 typically includes one or more processing units (CPUs) 202, one or more network interfaces 210, memory 212, and one or more communication buses 214 for interconnecting these components. The client system 102 includes a user interface 204. The user interface 204 includes an associated display device 104 and optionally includes an input means such as a keyboard, mouse, a touch sensitive display, or other input buttons 208. Optionally, the display device 106 includes an audio device or other information delivery device. Furthermore, some client systems use a microphone and voice recognition to supplement or replace the keyboard.

Memory 212 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. Memory 212 may optionally include one or more storage devices remotely located from the CPU(s) 202. Memory 212, or alternately the non-volatile memory device(s) within memory 212, includes a non-transitory computer readable storage medium. In some implementations, memory 212 or the computer readable storage medium of memory 212 stores the following programs, modules and data structures, or a subset thereof:

-   -   an operating system 216 that includes procedures for handling         various basic system services and for performing hardware         dependent tasks;     -   a network communication module 218 that is used for connecting         the client system 102 to other computers via the one or more         communication network interfaces 210 (wired or wireless) and one         or more communication networks, such as the Internet, other wide         area networks, local area networks, metropolitan area networks,         and so on;     -   a display module 220 for enabling display of media content on a         display 106 associated with the client system 102;     -   one or more client system 102 applications module(s) 104 for         enabling the client system 102 to perform the functions offered         by the client system 102, including but not limited to:         -   a browser application 224 for sending purchase requests 114             to a server system (FIG. 1, 120) and displaying the             information (for example html documents) returned by the             server system (FIG. 1, 120) or a smart phone or other             computer system application that performs the same function;         -   a interaction request module 226 for transmitting user             requests to the server system (FIG. 1, 120) that cause an             interaction with the server system (FIG. 1, 120); and/or     -   one or more client data module(s) 230 for storing data related         to the client system 102, including but not limited to:         -   client message data 232, including data representing             messages to be sent to the server system (FIG. 1, 120) and             messages received from the server system (FIG. 1, 120);             and/or         -   user profile data 234, including information concerning             users of the client system 102 such as a user profile, user             preferences and interests, user contact information, and             other information relevant to providing services to the             user.

FIG. 3 is a block diagram illustrating a server system 120, in accordance with some implementations. The server system 120 typically includes one or more processing units (CPUs) 302, one or more network interfaces 304, memory 306, and one or more communication buses 308 for interconnecting these components.

Memory 306 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. Memory 306 may optionally include one or more storage devices remotely located from the CPU(s) 302. Memory 306, or alternately the non-volatile memory device(s) within memory 306, includes a non-transitory computer readable storage medium. In some implementations, memory 306 or the computer readable storage medium of memory 306 stores the following programs, modules and data structures, or a subset thereof:

-   -   an operating system 310 that includes procedures for handling         various basic system services and for performing hardware         dependent tasks;     -   a network communication module 122 that is used for connecting         the server system 120 to other computers via the one or more         communication network interfaces 304 (wired or wireless) and one         or more communication networks, such as the Internet, other wide         area networks, local area networks, metropolitan area networks,         and so on;     -   one or more server application module(s) 314 for enabling the         server system 120 to perform the functions offered by the server         system 120, including but not limited to:         -   an interaction processing module 124 for receiving             interaction requests, determining the specific interaction,             and routing the request to the appropriate module;         -   an interaction analysis module 126 for completing the             interaction, recording the interaction, and determining             whether the interaction was associated with a reward         -   a reward module 128 for determining one or more users who             have qualified to the reward and allocating the reward             between them;         -   a genealogy building module 130 for analyzing user's social             network data and interactions with the server system to             build genealogies for interactions and users; and/or     -   one or more server data module(s) 330 for storing data related         to the server system 120, including but not limited to:         -   user profile data 160 including user preferences and             interests, user contact information, and user history,             including past user purchases, searches, page views,             previous product recommendations, previous product reviews,             social connections of the user, preferred vendors, vendor             reviews, and any other information related to the user;         -   genealogy data 150 including a database of connected and             directional graphs that represent the causal links between             users on the server system 120 and the actions the user             takes;         -   product data 140 including information for products that may             be purchased through the server system 120, including, but             not limited to, the price of the product, its features             (size, color, etc), recent changes in price, and the vendor             or vendors from which it is available; and/or         -   user interaction data 152 including a database of previous             user interactions with the server system (FIG. 1, 120),

FIG. 4 depicts a block diagram of an exemplary data structure for a user profile database 160 for storing information related to users of the server system (FIG. 1, 120). In accordance with some implementations, the user profile database 160 includes a plurality of user profiles 402-1 to 402-P, each of which corresponds to a user registered with the server system (FIG. 1, 120). In some implementations, each user profile 402 contains a user profile ID 404, a user history 406, trust information 408, recommendations 410 made by the user, user contact information 412, and vendor preferences 414. In some implementations, the user profile also includes a user's social rank.

In some implementations, user profile ID 404 is a value that uniquely identifies a specific user of the server system (FIG. 1, 120). In some implementations, this value is chosen by the user and is a user name In other implementations, this value is assigned to the user by the server system (FIG. 1, 120) as part of the registration process.

In some implementations, the user history 406 stores a history of the user's past interactions with the server system (FIG. 1, 120) including past user purchases and purchase details, searches, page views, previous product recommendations, previous product reviews, and social connections of the user including previously recorded trust information for other users and/or social information received from social networking sites.

In some implementations, trust information 408 includes data describing the social connections of the user and includes a trust level for other users of the server system (FIG. 1, 120). A trust level is a value representing the degree to which a user trusts the opinions and recommendations of another user. In some implementations, trust information is explicitly submitted by the users; in other situations the server system (FIG. 1, 120) infers trust information from the actions of users; and in yet other situations trust information includes information from both user submissions and server inferences.

In some implementations, recommendation 410 data includes product purchases and product recommendations previously submitted by the user. In some implementations, contact information 412 includes a list of contact information for contacting the user through a plurality of communication methods and information describing if and when the server system (FIG. 1, 120) should use that method. For example, the contact information 412 includes, but is not limited to, email addresses, phone numbers, Twitter handle/user name, social network ID, physical address and any other information that helps the server system (FIG. 1, 120) contact the user. The user may select that the server system (FIG. 1, 120) should never use social network messaging to contact to user and should use email address at all times except for the weekend and that a text message to a mobile phone should be used on the weekend. In some implementations, the contact information 412 includes login and password information for one or more social networking services.

In some implementations, vendor preference data 414 includes data indicating a user's vendor preferences. In some implementations, vendor preference data 414 includes vendors that the user has explicitly indicated as preferred vendors and vendors that the user has explicitly indicated as non-preferred vendors. In some implementations, vendor preference data 414 is determined based on previous user behavior (e.g., vendors that the user has repeatedly selected). In some implementations, a user's vendor preference is based on feedback or reviews from the user. Vendors that received positive reviews will be noted as potential favored vendors and vendors that receive negative reviews will be noted as potential disfavored vendor.

In some implementations, contact information stored for the user includes one or more ways to contact the user including, but not limited to, email addresses, phone numbers, Twitter handle/user name, social network ID, physical address and any other information that helps the server system (FIG. 1, 120) contact the user.

FIG. 5 is a flow diagram illustrating the process for rewarding users in a social referral system in accordance with some implementations. Each of the operations shown in FIG. 5 may correspond to instructions stored in a computer memory or computer readable storage medium. Optional operations are indicated by dashed lines (e.g., boxes with dashed-line borders). In some implementations, the method described in FIG. 5 is performed by the server system (FIG. 1, 120).

In some implementations, the server system (FIG. 1, 120) generates (502) genealogy data for one or more users associated with the server system (FIG. 1, 120). In some implementations, generating genealogy data includes storing (504) previous interactions of one or more users with the server system. The server system (FIG. 1, 120) then, based on the stored previous interactions of one or more users, determines (506) causal links between other users of the server system (FIG. 1, 120) and the actions of the other users of the server system (FIG. 1, 120).

In some implementations, the server system (FIG. 1, 120) generates genealogy graphs based on the determined causal links. In some implementations, a causal link is a connection between two users, a user and an interaction, or two interactions where one action or user may be said to be at least partially responsible for the acts of a second user. For example, if user A refers user B to the server system (FIG. 1, 120), user A is at least partially responsible for any interactions user B takes while registered with server A.

In some implementations, the server system (FIG. 1, 120) determines causal links based on analyzing data for at least the following user interactions: a product purchase request, a recommendation, a request for recommendations, a request to redeem a reward, a request to pre-establish purchase intent, a user referral, a request to establish trust with another user of the server system, and any responses to any requests from the server system 120.

In some implementations, the server system (FIG. 1, 120) generates genealogies by accessing and analyzing user relationships in forums/social media/social networking services. All this information is gathered to create genealogy graphs that are directed graphs showing connections between users and showing connections between actions (which ones caused other ones).

In some implementations, the server system (FIG. 1, 120) accesses (510) social network data associated with one or more users of the server system, and, based on the accessed social network data, generates (512) a social relationship graph. In some implementations, the genealogy graphs are directed graphs.

In some implementations, the accessed social network data is trust graph data stored on the server system. In other implementations, the accessed social network data is social network data from the computer system, one or more a third party social networking sites, or one or more social messaging sites. For example, the third party sites can include Twitter, tumblr, Facebook, or any other suitable service.

In some implementations, the server system (FIG. 1, 120) stores (514) genealogy data for a plurality users of the server system. The server system (FIG. 1, 120) then detects (516) a user interaction with the computer system. In some implementations, the detected user interaction includes, but are not limited to: a product purchase request, a recommendation, a request for recommendations, a request to redeem a reward, a request to pre-establish purchase intent, a user referral, a request to establish trust with another user of the server system, and any responses to any requests from the server system 120 (517).

In some implementations, the server system (FIG. 1, 120) determines (518) whether the detected user interaction is associated with a reward. In accordance with a determination that the detected user interaction is associated with a reward, the server system (FIG. 1, 120) determines (520), based on the stored genealogy data associated with the detected user interaction, a list of one or more users to receive at least a portion of the reward associated with the detected user interaction. In some implementations, the reward is one of currency, credit on the computer system, or social based points.

FIG. 6 is a flow diagram illustrating the process for rewarding users in a social referral system in accordance with some implementations. Each of the operations shown in FIG. 6 may correspond to instructions stored in a computer memory or computer readable storage medium. Optional operations are indicated by dashed lines (e.g., boxes with dashed-line borders). In some implementations, the method described in FIG. 6 is performed by the server system (FIG. 1, 120).

In some implementations, the server system (FIG. 1, 120) allocates (602) the associated reward to at least one of the one or more listed users. In some implementations, allocating the associated reward to at least one of the one or more listed users further includes the server system (FIG. 1, 120) establishing (604) a maximum reward amount. In some implementations, the server system (FIG. 1, 120) identifies (606) a first user from the one or more users identified in a genealogy as responsible for the action that caused the reward to be granted.

In some implementations, the server system (FIG. 1, 120) then allocates (608) a portion of the reward to the first user. In some implementations, the server system (FIG. 1, 120) allocates (610) the remaining reward to any other users in the one or more users, allotting portions based on the degree to which a respective user is responsible for the granting of the reward; wherein the sum of all the divided portions of the reward does not exceed the maximum reward amount.

In some implementations, the detected user interaction is the purchase of a product via the server system 120, and the server system (FIG. 1, 120), for each respective user listed in the stored geology, determines (612) whether the respective user has qualified to receive a reward from the server system. In some implementations, in accordance with a determination that the respective user has qualified to receive a reward from the server system, the server system adds (614) the respective user to the list of one or more users.

In some implementations, a user qualifies to receive a reward from the server system by performing one or more of purchasing a product from the server system, registering with the sever system, referring another user to the server system, or making recommendations to the server system.

In some implementations, the stored genealogy data is organized in a connected graph with nodes and edges, and only users within a predetermined distance of the source node qualify to receive a reward from the server system.

The foregoing description, for purpose of explanation, has been described with reference to specific implementations. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The implementations were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various implementations with various modifications as are suited to the particular use contemplated.

It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first contact could be termed a second contact, and, similarly, a second contact could be termed a first contact, without departing from the scope of the present implementations. The first contact and the second contact are both contacts, but the first contact and the second contact are not the same contact.

The terminology used in the description of the implementations herein is for the purpose of describing particular implementations only and is not intended to be limiting. As used in the description of the implementations and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in response to detecting,” depending on the context. Similarly, the phrase “if it is determined” or “if (a stated condition or event) is detected” may be construed to mean “upon determining” or “in response to determining” or “upon detecting (the stated condition or event)” or “in response to detecting (the stated condition or event),” depending on the context. 

What is claimed is:
 1. A method for rewarding users in a social referral system; the method comprising: at computer system having one or more processors and memory storing one or more programs for execution by the one or more processors: storing genealogy data for a plurality of users of the computer system; detecting a user interaction with the computer system; determining whether the detected user interaction is associated with a reward; in accordance with a determination that the detected user interaction is associated with a reward, determining, based on the stored genealogy data associated with the detected user interaction, a list of one or more users to receive at least a portion of the reward associated with the detected user interaction; and allocating the associated reward to at least one of the one or more listed users.
 2. The method of claim 1, further including generating genealogy data for one or more users associated with the computer system.
 3. The method of claim 2, wherein generating genealogy data for users includes: storing previous interactions of one or more users with the server system; based on the stored previous interactions of one or more users, determining causal links between users and user's actions; and generating genealogy graphs based on the determined causal links.
 4. The method of claim 2, wherein generating genealogy data for users includes: accessing social network data associated with one or more users of the server system; and based on the accessed social network data, generating a social relationship graph.
 5. The method of claim 4, where in the accessed social network data is trust graph data stored on the computer system.
 6. The method of claim 4, wherein the accessed social network data is social network data from the computer system, one or more a third party social networking sites, or one or more social messaging sites.
 7. The method of claim 1, wherein the detected user interaction with the server system is one of purchasing a product, recommending a product, referring a new user, and registering with the computer system for the first time.
 8. The method of claim 1, wherein the reward is one of currency, credit on the computer system, or social network points.
 9. The method of claim 1, wherein the detected user interaction is purchasing a product, wherein the stored genealogy includes one or more users of the server system that are associated with the product purchase and wherein determining, based on the stored genealogy data associated with the detected user interaction, one or more users eligible to receive at least a portion of the reward associated with the detected user interaction further includes: for each respective user listed in the stored genealogy data: determining whether the respective user has qualified to receive a reward from the server system; and in accordance with a determination that the respective user has qualified to receive a reward from the server system, adding the respective user to the list of one or more users.
 10. The method of claim 9, wherein a user qualifies to receive a reward from the server system by performing one or more of: purchasing a product from the server system, registering with the sever system, referring another user to the server system, or making recommendations to the server system.
 11. The method of claim 9, wherein the stored genealogy data is organized in a connected graph with nodes and edges and only users within a predetermined distance of the source node qualify to receive a reward from the server system.
 12. The method of claim 1, wherein allocating the associated reward to at least one of the one or more listed users further includes: establishing a maximum reward amount; identifying a first user from the one or more users most responsible for the action that caused the reward to be granted; allocating a portion of the reward to the first user; allocating the remaining reward to any other users in the one or more users and allotting portions based on the degree to which a respective user is responsible for granting of the reward; wherein the sum of all the divided portions of the reward does not exceed the maximum reward amount.
 13. A server system for rewarding users in a social referral system, the server system comprising: one or more processors and memory storing one or more programs to be executed by the one or more processors; the one or more programs comprising instructions for: storing genealogy data for a plurality of users of the computer system; detecting a user interaction with the computer system; determining whether the detected user interaction is associated with a reward; in accordance with a determination that the detected user interaction is associated with a reward, determining, based on the stored genealogy data associated with the detected user interaction, a list of one or more users to receive at least a portion of the reward associated with the detected user interaction; and allocating the associated reward to at least one of the one or more listed users.
 14. The server system of claim 13, further including instructions for: generating genealogy data for one or more users associated with the computer system.
 15. The server system of claim 14, wherein instructions for generating genealogy data for users further includes instructions for: storing previous interactions of one or more users with the server system; based on the stored previous interactions of one or more users, determining causal links between users and user's actions; and generating genealogy graphs based on the determined causal links.
 16. The server system of claim 14, wherein instructions for generating genealogy data for users further includes instructions for: accessing social network data associated with one or more users of the server system; and based on the accessed social network data, generating a social relationship graph.
 17. A non-transitory computer readable storage medium storing one or more programs configured for execution by an electronic device, the one or more programs comprising instructions for: storing genealogy data for a plurality of users of the computer system; detecting a user interaction with the computer system; determining whether the detected user interaction is associated with a reward; in accordance with a determination that the detected user interaction is associated with a reward, determining, based on the stored genealogy data associated with the detected user interaction, a list of one or more users to receive at least a portion of the reward associated with the detected user interaction; and allocating the associated reward to at least one of the one or more listed users.
 18. The non-transitory computer readable storage medium of claim 17, further including instructions for generating genealogy data for one or more users associated with the computer system.
 19. The non-transitory computer readable storage medium of claim 18, wherein instructions for generating genealogy data for users further includes instructions for: storing previous interactions of one or more users with the server system; based on the stored previous interactions of one or more users, determining causal links between users and user's actions; and generating genealogy graphs based on the determined causal links.
 20. The non-transitory computer readable storage medium of claim 18, wherein instructions for generating genealogy data for users further includes instructions for: accessing social network data associated with one or more users of the server system; and based on the accessed social network data, generating a social relationship graph. 